feat(multitask)!: read derived pipeline state from task.run_state#190
Merged
Conversation
Phase B of ADR adr-multitask-configmulti-merge (accepted 2026-06-06): PlottingMixin and plot helpers consume the resolved target list from task.run_state instead of the config; test fixtures no longer setattr derived window fields onto configs. Requires spotforecast2-safe >= 18 (RunState); the dependency pin bump follows as a separate commit once 18.0.0 is released. BREAKING CHANGE: spotforecast2 no longer reads start_download, end_download, data_start, data_end, cov_start, cov_end, end_train_ts, start_train_ts, or the resolved target list from the config; use task.run_state. config.targets always holds the user input. NOTE: CI stays red against PyPI spotforecast2-safe < 18; green requires the 18.0.0 pin bump follow-up. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
spotforecast2-safe 18.0.0 (RunState extraction, ADR adr-multitask-configmulti-merge Phase A) is released on PyPI; this branch's run_state reads now resolve against the published package. Full suite (1159 passed), consumer-contract gate (4/4), and ruff are green against the PyPI build — no editable override involved. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
Collaborator
Author
|
🎉 This PR is included in version 5.0.0-rc.1 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
Collaborator
Author
|
🎉 This PR is included in version 5.0.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Phase B of ADR adr-multitask-configmulti-merge (accepted 2026-06-06; Phase A = spotforecast2-safe #332, merged): this repo consumes the derived pipeline state from the task-owned
RunStateinstead of the config.PlottingMixinandBaseTask._aggregate_and_showread the resolved target list fromtask.run_state.targets(config.targetsalways holds the user input verbatim; the pre-pipeline default intask_entsoe.pystays)plots/plotter.py plot_with_outliersgains an explicittargetsparameter (typedOptional[list[str]]); theconfig.targetsfallback remains for one cycle for legacy standalone callerssetattr-ing derived window fields onto configs (the Phase A review blind spot, applied proactively here) — tests set/assertrun_state.*targetspath and the exact kwarg forwardingPlottingMixin → plot_with_outlierspyproject.tomlstill pinsspotforecast2-safe>=16.3.0,<17(PyPI), which has noRunState. The pin/lock bump to>=18,<19is a deliberate follow-up commit once safe 18.0.0 is released (develop→main promotion in spotforecast2-safe). Authoritative verification ran against the editable local safe (Phase A merge):ruff/black/isortclean; REUSE 3.3 compliant (175/175)Review
Implemented and reviewed via the python-dev agent pipeline; review verdict (1 important: explicit-targets test coverage; 2 nits:
Optional[list[str]]annotation, import-block recombine) fully addressed in this commit. Findings recorded in the spot-knowledge KB.BREAKING CHANGE
spotforecast2 no longer reads
start_download,end_download,data_start,data_end,cov_start,cov_end,end_train_ts,start_train_ts, or the resolved target list from the config — usetask.run_state. Semantic-release → sf2 5.0.0.🤖 Generated with Claude Code